//
//  FlickrParser.h
//  iFlickr
//
//  Created by 张 霄鹤 on 09-4-6.
//  Copyright 2009 __MyCompanyName__. All rights reserved.
//

// Flickr返回内容解析器

#import <Foundation/Foundation.h>
#import "Stack.h"

#define TAG_TYPE_FROB 1
#define TAG_TYPE_AUTH 2

/**
 * 调整方案，采用解析完成后返回内容的形式，而不是使用对象赋值的形式，也就是说，有外部的使用者来决定
 */
@interface FlickrParser : NSObject {
	NSXMLParser *fparser;
	NSString *currentElement;
	id result;
	Stack *tags;
	NSInteger tagType;
	BOOL success;
}

-(id)init;

-(BOOL)parseString:(NSString *)xmlContent;

/**
 * 解析数据
 */
-(BOOL)parseData:(NSData *)data;

/**
 * 标签开始
 */
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict;

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName;

/**
 * 文档结束 用于清空 tags
 */
- (void)parserDidEndDocument:(NSXMLParser *)parser;

/**
 * 获取解析结果 正常的结果 或者适 NSError
 */
-(id)getResult;

/**
 * 是否相应成功
 */
-(BOOL)isSuccess;

-(void)dealloc;

@end
